As those skilled in the pertinent art are familiar, interlaced video fields have half the lines of a full video frame. A field containing odd horizontal lines or rows is followed by another one containing even horizontal lines or rows, thereby reducing bandwidth requirements but maintaining an acceptable perceived resolution. As bandwidth has increased and video compression has become more powerful, video frames are more often being transmitted without interlacing. This is called “progressive” video.
Sometimes, however, it is necessary or desirable to convert interlaced video to progressive video. This conversion, called deinterlacing, amounts to a 2× upsampling. The frame rate of the video image doubles as a result. The field contains intensity values for pixels on every other line or row, referred to herein as “present samples.” Deinterlacing involves obtaining intensity values for the pixels in the missing interstitial lines or rows, referred to herein as “missing samples.” A typical deinterlacing engine implements a pipeline having a spatial deinterlacing stage that deinterlaces based on the spatial features of a given field, and temporal deinterlacing stages that deinterlace based on multiple fields in time. A deinterlacing engine may be implemented as an integrated circuit (IC), an application-specific IC (ASIC) for video processing, a graphics processing unit (GPU), or other system-on-a-chip (SOC).
In spatial deinterlacing, assuming the lines are horizontal, a vertical linear interpolation may be used to obtain the intensity value for a missing sample located between two present samples. An alternative method involves identifying edges in the image described by the field data, and interpolating along the direction of the edges. The edge direction is usually identified by either identifying the local intensity gradient and assuming the edge is perpendicular to it, or feature matching between horizontal rows of pixels to determine the horizontal shift from one row to the next.